home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 3 / CD ACTUAL 3.iso / linux / docs / linux-do / programm / lpg-0.4 / lpg-0 / LPG / lpg.toc < prev    next >
Encoding:
Text File  |  1995-04-02  |  9.4 KB  |  151 lines

  1. \contentsline {chapter}{\numberline {1}The Linux operating system}{5}
  2. \contentsline {chapter}{\numberline {2}The Linux kernel}{7}
  3. \contentsline {chapter}{\numberline {3}The Linux libc package}{9}
  4. \contentsline {chapter}{\numberline {4}System calls}{11}
  5. \contentsline {chapter}{\numberline {5}The ``swiss army knife'' ioctl}{13}
  6. \contentsline {chapter}{\numberline {6}Linux Interprocess Communications}{15}
  7. \contentsline {section}{\numberline {6.1}Introduction}{15}
  8. \contentsline {section}{\numberline {6.2}Half-duplex UNIX Pipes}{15}
  9. \contentsline {subsection}{\numberline {6.2.1}Basic Concepts}{15}
  10. \contentsline {subsection}{\numberline {6.2.2}Creating Pipes in C}{17}
  11. \contentsline {subsection}{\numberline {6.2.3}Pipes the Easy Way!}{22}
  12. \contentsline {subsection}{\numberline {6.2.4}Atomic Operations with Pipes}{26}
  13. \contentsline {subsection}{\numberline {6.2.5}Notes on half-duplex pipes:}{26}
  14. \contentsline {section}{\numberline {6.3}Named Pipes (FIFOs - First In First Out)}{27}
  15. \contentsline {subsection}{\numberline {6.3.1}Basic Concepts}{27}
  16. \contentsline {subsection}{\numberline {6.3.2}Creating a FIFO}{27}
  17. \contentsline {subsection}{\numberline {6.3.3}FIFO Operations}{28}
  18. \contentsline {subsection}{\numberline {6.3.4}Blocking Actions on a FIFO}{30}
  19. \contentsline {subsection}{\numberline {6.3.5}The Infamous SIGPIPE Signal}{30}
  20. \contentsline {section}{\numberline {6.4}System V IPC}{30}
  21. \contentsline {subsection}{\numberline {6.4.1}Fundamental Concepts}{30}
  22. \contentsline {subsubsection}{IPC Identifiers}{31}
  23. \contentsline {subsubsection}{IPC Keys}{31}
  24. \contentsline {subsubsection}{The {\tt ipcs} Command}{32}
  25. \contentsline {subsubsection}{The {\tt ipcrm} Command}{33}
  26. \contentsline {subsection}{\numberline {6.4.2}Message Queues}{33}
  27. \contentsline {subsubsection}{Basic Concepts}{33}
  28. \contentsline {subsubsection}{Internal and User Data Structures}{33}
  29. \contentsline {paragraph}{Message buffer}{33}
  30. \contentsline {paragraph}{Kernel {\tt msg} structure}{34}
  31. \contentsline {paragraph}{Kernel {\tt msqid\_ds} structure}{35}
  32. \contentsline {paragraph}{Kernel {\tt ipc\_perm} structure}{36}
  33. \contentsline {subsubsection}{SYSTEM CALL: msgget()}{37}
  34. \contentsline {subsubsection}{SYSTEM CALL: msgsnd()}{38}
  35. \contentsline {subsubsection}{SYSTEM CALL: msgctl()}{42}
  36. \contentsline {subsubsection}{msgtool: An interactive message queue manipulator}{45}
  37. \contentsline {paragraph}{Background}{45}
  38. \contentsline {paragraph}{Command Line Syntax}{45}
  39. \contentsline {subparagraph}{Sending Messages }{45}
  40. \contentsline {subparagraph}{Retrieving Messages}{45}
  41. \contentsline {subparagraph}{Changing the Permissions (mode)}{46}
  42. \contentsline {subparagraph}{Deleting a Queue}{46}
  43. \contentsline {paragraph}{Examples}{46}
  44. \contentsline {paragraph}{The Source}{46}
  45. \contentsline {subsection}{\numberline {6.4.3}Semaphores}{49}
  46. \contentsline {subsubsection}{Basic Concepts}{49}
  47. \contentsline {subsubsection}{Internal Data Structures}{50}
  48. \contentsline {paragraph}{Kernel {\tt semid\_ds} structure}{50}
  49. \contentsline {paragraph}{Kernel {\tt sem} structure}{51}
  50. \contentsline {subsubsection}{SYSTEM CALL: semget()}{52}
  51. \contentsline {subsubsection}{SYSTEM CALL: semop()}{53}
  52. \contentsline {subsubsection}{SYSTEM CALL: semctl()}{55}
  53. \contentsline {subsubsection}{semtool: An interactive semaphore manipulator}{59}
  54. \contentsline {paragraph}{Background}{59}
  55. \contentsline {paragraph}{Command Line Syntax}{60}
  56. \contentsline {subparagraph}{Creating a Semaphore Set}{60}
  57. \contentsline {subparagraph}{Locking a Semaphore}{60}
  58. \contentsline {subparagraph}{Unlocking a Semaphore}{60}
  59. \contentsline {subparagraph}{Changing the Permissions (mode)}{60}
  60. \contentsline {subparagraph}{Deleting a Semaphore Set}{60}
  61. \contentsline {paragraph}{Examples}{60}
  62. \contentsline {paragraph}{The Source}{60}
  63. \contentsline {subsubsection}{semstat: A semtool companion program}{65}
  64. \contentsline {subsection}{\numberline {6.4.4}Shared Memory}{67}
  65. \contentsline {subsubsection}{Basic Concepts}{67}
  66. \contentsline {subsubsection}{Internal and User Data Structures}{67}
  67. \contentsline {paragraph}{Kernel {\tt shmid\_ds} structure}{68}
  68. \contentsline {subsubsection}{SYSTEM CALL: shmget()}{69}
  69. \contentsline {subsubsection}{SYSTEM CALL: shmat()}{70}
  70. \contentsline {subsubsection}{SYSTEM CALL: shmctl()}{71}
  71. \contentsline {subsubsection}{SYSTEM CALL: shmdt()}{71}
  72. \contentsline {subsubsection}{shmtool: An interactive shared memory manipulator}{72}
  73. \contentsline {paragraph}{Background}{72}
  74. \contentsline {paragraph}{Command Line Syntax}{72}
  75. \contentsline {subparagraph}{Writing strings to the segment}{72}
  76. \contentsline {subparagraph}{Retrieving strings from the segment}{72}
  77. \contentsline {subparagraph}{Changing the Permissions (mode)}{72}
  78. \contentsline {subparagraph}{Deleting the segment}{72}
  79. \contentsline {paragraph}{Examples}{72}
  80. \contentsline {paragraph}{The Source}{72}
  81. \contentsline {chapter}{\numberline {7}Sound Programming}{77}
  82. \contentsline {section}{\numberline {7.1}Programming the internal speaker}{77}
  83. \contentsline {section}{\numberline {7.2}Programming a sound card}{78}
  84. \contentsline {chapter}{\numberline {8}Character Cell Graphics}{79}
  85. \contentsline {section}{\numberline {8.1}I/O Function in libc}{80}
  86. \contentsline {subsection}{\numberline {8.1.1}Formatted Output}{80}
  87. \contentsline {subsection}{\numberline {8.1.2}Formatted Input}{81}
  88. \contentsline {section}{\numberline {8.2}The Termcap Library}{82}
  89. \contentsline {subsection}{\numberline {8.2.1}Introduction}{82}
  90. \contentsline {subsection}{\numberline {8.2.2}Find a Terminal Description}{83}
  91. \contentsline {subsection}{\numberline {8.2.3}Look at a Terminal Description}{84}
  92. \contentsline {subsection}{\numberline {8.2.4}Termcap Capabilities}{85}
  93. \contentsline {subsubsection}{Boolean Capabilities}{85}
  94. \contentsline {subsubsection}{Numeric Capabilities}{86}
  95. \contentsline {subsubsection}{String Capabilities}{86}
  96. \contentsline {section}{\numberline {8.3}Ncurses - Introduction}{90}
  97. \contentsline {section}{\numberline {8.4}Initializing}{92}
  98. \contentsline {section}{\numberline {8.5}Windows}{93}
  99. \contentsline {section}{\numberline {8.6}Output}{96}
  100. \contentsline {subsection}{\numberline {8.6.1}Formatted Output}{97}
  101. \contentsline {subsection}{\numberline {8.6.2}Insert Characters/Lines}{97}
  102. \contentsline {subsection}{\numberline {8.6.3}Delete Characters/Lines}{98}
  103. \contentsline {subsection}{\numberline {8.6.4}Boxes and Lines}{98}
  104. \contentsline {subsection}{\numberline {8.6.5}Background Character}{98}
  105. \contentsline {section}{\numberline {8.7}Input}{100}
  106. \contentsline {subsection}{\numberline {8.7.1}Formated Input}{101}
  107. \contentsline {section}{\numberline {8.8}Options}{101}
  108. \contentsline {subsubsection}{Output Options}{101}
  109. \contentsline {subsection}{\numberline {8.8.1}Input Options}{102}
  110. \contentsline {subsection}{\numberline {8.8.2}Terminal Attributes}{103}
  111. \contentsline {subsection}{\numberline {8.8.3}Use Options}{104}
  112. \contentsline {section}{\numberline {8.9}Clear Window and Lines}{106}
  113. \contentsline {section}{\numberline {8.10}Updating the Terminal}{107}
  114. \contentsline {section}{\numberline {8.11}Video Attributes and Color}{109}
  115. \contentsline {section}{\numberline {8.12}Cursor and Window Coordinates}{112}
  116. \contentsline {section}{\numberline {8.13}Scrolling}{112}
  117. \contentsline {section}{\numberline {8.14}Pads}{114}
  118. \contentsline {section}{\numberline {8.15}Soft-labels}{114}
  119. \contentsline {section}{\numberline {8.16}Miscellaneous}{115}
  120. \contentsline {section}{\numberline {8.17}Low-level Access}{116}
  121. \contentsline {section}{\numberline {8.18}Screen Dump}{116}
  122. \contentsline {section}{\numberline {8.19}Termcap Emulation}{116}
  123. \contentsline {section}{\numberline {8.20}Terminfo Functions}{117}
  124. \contentsline {section}{\numberline {8.21}Debug Function}{118}
  125. \contentsline {section}{\numberline {8.22}Terminfo Capabilities}{118}
  126. \contentsline {subsection}{\numberline {8.22.1}Boolean Capabilities}{118}
  127. \contentsline {subsection}{\numberline {8.22.2}Numbers}{119}
  128. \contentsline {subsection}{\numberline {8.22.3}Strings}{120}
  129. \contentsline {section}{\numberline {8.23}$[$N$]$Curses Function Overview}{127}
  130. \contentsline {chapter}{\numberline {9}Programming I/O ports}{131}
  131. \contentsline {section}{\numberline {9.1}Mouse Programming}{133}
  132. \contentsline {section}{\numberline {9.2}Modem Programming}{134}
  133. \contentsline {section}{\numberline {9.3}Printer Programming}{134}
  134. \contentsline {section}{\numberline {9.4}Joystick Programming}{134}
  135. \contentsline {chapter}{\numberline {10}Porting Applications to Linux}{135}
  136. \contentsline {section}{\numberline {10.1}Introduction}{135}
  137. \contentsline {section}{\numberline {10.2}Signal handling}{135}
  138. \contentsline {subsection}{\numberline {10.2.1}Signals under SVR4, BSD, and POSIX.1}{136}
  139. \contentsline {subsection}{\numberline {10.2.2}Linux signal options}{136}
  140. \contentsline {subsection}{\numberline {10.2.3}{\em signal\/} under Linux}{137}
  141. \contentsline {subsection}{\numberline {10.2.4}Signals supported by Linux}{137}
  142. \contentsline {section}{\numberline {10.3}Terminal I/O}{138}
  143. \contentsline {section}{\numberline {10.4}Process information and control}{138}
  144. \contentsline {subsection}{\numberline {10.4.1}{\em kvm} routines}{139}
  145. \contentsline {subsection}{\numberline {10.4.2}{\em ptrace} and the {\em /proc} filesystem}{139}
  146. \contentsline {subsection}{\numberline {10.4.3}Process control under Linux}{139}
  147. \contentsline {section}{\numberline {10.5}Portable conditional compilation}{140}
  148. \contentsline {section}{\numberline {10.6}Additional Comments}{141}
  149. \contentsline {chapter}{\numberline {11}Systemcalls in alphabetical order}{143}
  150. \contentsline {chapter}{\numberline {12}Abbreviations}{149}
  151.